package com.cmc.cloud.cmclink.doc.service;

import com.cmc.cloud.cmclink.doc.entity.SuperWhitelistDgDO;
import com.cmc.cloud.cmclink.doc.vo.superwhitelistvo.*;
import com.cmes.framework.common.pojo.PageResult;

import javax.validation.Valid;
import java.util.Collection;
import java.util.List;

/**
 * 有条件接载清单(DG) Service 接口
 *
 * @author 集运管理员
 */
public interface SuperWhitelistDgService {

    /**
     * 创建有条件接载清单(DG)
     *
     * @param createReqVO 创建信息
     */
    void createSuperWhitelistDg(@Valid SuperWhitelistDgBaseVO createReqVO);

    /**
     * 更新有条件接载清单(DG)
     *
     * @param updateReqVO 更新信息
     */
    void updateSuperWhitelistDg(@Valid SuperWhitelistDgUpdateReqVO updateReqVO);

    /**
     * 删除有条件接载清单(DG)
     *
     * @param id 编号
     */
    void deleteSuperWhitelistDg(Long id);

    /**
     * 获得有条件接载清单(DG)
     *
     * @param id 编号
     * @return 有条件接载清单(DG)
     */
    SuperWhitelistDgDO getSuperWhitelistDg(Long id);

    /**
     * 获得有条件接载清单(DG)列表
     *
     * @param ids 编号
     * @return 有条件接载清单(DG)列表
     */
    List<SuperWhitelistDgDO> getSuperWhitelistDgList(Collection<Long> ids);

    /**
     * 获得有条件接载清单(DG)分页
     *
     * @param pageReqVO 分页查询
     * @return 有条件接载清单(DG)分页
     */
    PageResult<SuperWhitelistDgDO> getSuperWhitelistDgPage(SuperWhitelistDgPageReqVO pageReqVO);

    /**
     * 获取导出记录
     *
     * @param reqVO
     * @return
     */
    List<SuperWhitelistDgDO> getExportList(SuperWhitelistReqVO reqVO);

    /**
     * 复制
     *
     * @param reqVO
     */
    void copyFromHistory(SpecialWhiteListCopyReqVO reqVO);

    /**
     * 导入
     *
     * @param importVos
     * @return
     */
    Integer saveImportData(List<SuperWhitelistDgBaseVO> importVos);

    /**
     * 删除文件
     *
     * @param id
     */
    void deleteFile(Long id);
}
